{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# _*Experiment with the Bernstein-Vazirani Algorithm in Aqua*_\n",
    "\n",
    "This notebook demonstrates how to experiment with the `Bernstein-Vazirani` algorithm in `Qiskit Aqua`.\n",
    "\n",
    "We first import all necessary modules."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import math\n",
    "from qiskit import BasicAer\n",
    "from qiskit.aqua import QuantumInstance\n",
    "from qiskit.aqua.algorithms import BernsteinVazirani\n",
    "from qiskit.aqua.components.oracles import TruthTableOracle"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Bernstein-Vazirani algorithm is explained in more detail in the corresponding notebook located in the directory `algorithms`. We can experiment with it in Aqua by feeding it oracles created using truth tables. For example, we can create a `TruthTableOracle` instance as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "bitstr = '00111100'\n",
    "oracle = TruthTableOracle(bitstr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As shown, the truthtable is specified with the `bitstr` containing values of all entries in the table. It has length $8$, so the corresponding truth table is of $3$ input bits. The truthtable represents the function mappings as follows.\n",
    "\n",
    "- $\\mathbf{a} \\cdot 000 \\mod 2 = 0$\n",
    "- $\\mathbf{a} \\cdot 001 \\mod 2 = 0$\n",
    "- $\\mathbf{a} \\cdot 010 \\mod 2 = 1$\n",
    "- $\\mathbf{a} \\cdot 011 \\mod 2 = 1$\n",
    "- $\\mathbf{a} \\cdot 100 \\mod 2 = 1$\n",
    "- $\\mathbf{a} \\cdot 101 \\mod 2 = 1$\n",
    "- $\\mathbf{a} \\cdot 110 \\mod 2 = 0$\n",
    "- $\\mathbf{a} \\cdot 111 \\mod 2 = 0$\n",
    "\n",
    "And obviously the goal is to find the bitstring $\\mathbf{a}$ that satisfies all the inner product equations.\n",
    "\n",
    "We can inspect the circuit corresponding to the binary function encoded in the `TruthTableOracle` instance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACSwAAAGZCAIAAAAG23qhAAC6/UlEQVR4nOzdd2AU1dr48Se9AyEEwqVDEASUGkAEQw2CVAURETARFSwIePWivBcEBMFLU6qACRcsARQIXUQpFqRFeg0gLRAgCSUhfff3x/zefddN2zJb8/38teyeOfOc4eQ5O3Nmz7hptVqBY0hLS3vmmWceffRRLy8ve8cCJ3P27Nno6Ojhw4fbOxAAzuGFF17Iz88PCQmxdyBwMjdv3gwLC/viiy/sHQgA5zB79uxt27bVq1fP3oHAyWRlZf311187d+709va2dyww38cff/zLL7/Url3b3oHAyWRmZiYnJ+/cudPd3d3esQAAoAI3JuEcx48//hgVFfWPf/zD19fX3rHAyVy5ciUqKmrLli32DgSAc/D19fXz86tYsaK9A4GTuX37tqenZ1pamr0DAeAcWrVqdeLEiWrVqtk7EDiZzMzMlJSUpKQkZnCdWuPGjS9dulS1alV7BwIn8+DBg9u3b9+6dSs0NNTesQAAoAJPeweA/xMcHCwi33777VNPPWXvWOBkatas2aBBA3tHAcBpBAYGjhw58uOPP7Z3IHAyr7766u+//27vKAA4jUceecTd3f3AgQP2DgROZs2aNYMGDfLx8bF3ILBIeHh45cqVd+3aZe9A4GRWrFgRHR3t4eFh70AAAFAHv+wGAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyJuEAAAAAAAAAAAAAlTEJBwAAAAAAAAAAAKiMSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQmae9AzBffn6+RqPx9va2vKqcnBwfHx/L6yk70tLStFptuXLlvLy87B2LK9BqtWlpaSISHBzs7s7UOAD8H0YcdTHiAECRGG7UxXAD50IGUBcZAAAAfU48Fo4aNWr48OGqVFW7du1FixapUlVZsGTJkpCQkJ49e+bn59s7Fhfh5uY2ZsyYSpUqvfXWW/aOBQAcCCOO6hhxAKAwhhvVMdzAiZABVEcGAABAnxP/Eu7mzZsZGRmqVNWiRYv58+e/8cYbqtRmF5mZmcrR8Pf3DwoKKqFkdnb2vXv3RKRcuXJ+fn6m7ighIeGtt96qUaPGxo0bzdgcxVm+fHlSUtLixYtr1KjxwQcf2DscACiazYYbYcSxGkYcAI6P4cYFMNzAbGQAF0AGAABAx4l/CWeMgoKCpKSkn3/++eTJkxqNprhi0dHRZ86c+eOPP2wZm7rGjRsXFhYWFhYWFxdXcskFCxYoJXft2mXqXpKTk4cOHVpQULBs2bIqVaqYG6ztGNkBHIGPj8/KlSt9fX0nTJjw+++/2zscACiabYYbcbYRx4mGG2HEAeAMGG6KxHCDMoIMUCQyAAAATsplJ+E0Gs28efNq1qxZv379Ll26NGnSpE6dOvPnzy+ycJ8+fUJCQmJjY20cpIoOHDigvGjTpo2RJVu3bm3qXsaMGfPgwYMhQ4Z0797d1G2NMXv27IiIiIiICMv/L0zqALZXZEvr168/adIkrVY7cuRI1sEA4JhsM9yIlUecMj7cCCMOAIfnGsONqDfiMNygTCEDGCADAADg3LROq1evXh07dizyo+zs7GeffVbXRn9/f93rgQMHFhQUFN5k9OjR5cqVy8zMtHLUJTl48KCI7Nmzx9QNMzMzPT09RcTb2zs7O7vkwjVr1hSRevXqmbqXrVu3ioiHh8eFCxdM3dZInTp1Uv6bNm/ebEk9ZnQAGyuupQ8fPqxcubKI/Oc//zGpwho1aowdO1bVGAG4spCQkAkTJpi6lW2GG631RxyGG625I86IESMaNWqkaowAXNngwYMjIiJM3cplhhutSiNOGRxuVq9eLSJXr15VNUzYWp8+fYq7aFMCMoCBMpgBlF9ApqamqhomAAB245q/hJs0adK6detEZMSIEcqj444fPz5w4EARWbt27YwZMwpvEhMTc//+/e+//97Wsarh8OHDyl1FTZs29fHxKaFkSkrKlStXxPTbxDQazejRo0Vk8ODBdevWtSDYYmm12sTEROV1q1atLKnKjA5gSyW01M/Pb+zYsSLy0Ucf3b592w7BAUDxbDDciPVHHIYbBSMOAIflGsONqDfiMNygTCEDGCADAADg7FxwEu78+fOzZ88WkaFDhyrreru5uTVp0iQ+Pr5///4iMmnSpEuXLhls1bRp0+bNm5e64Lhj2r9/v/Ki1LUajC9pYNu2bUlJSSLy+uuvmx6gUQoKChISEnbv3r13715LVmM3rwPYUsktfeWVVzw9PTMzM520NwJwYTYYbsT6Iw7DjQ4jDgDH5BrDjag04jDcoKwhA+gjAwAA4AJccBJu6dKl+fn5vr6+M2fO1H/f3d19zpw5Hh4e+fn5q1atKrxhTEzM7t277fv1xTzGf/U0fml1A0uWLBGRmjVrPvnkk6YHaBRPT8/IyMjIyMgOHTpYUo/ZHcBmSm5paGhoVFSUiHzxxRdardbm0QFAsWww3Ij1RxyGGx1GHACOyTWGG1FpxGG4QVlDBtBHBgAAwAW44CTcN998IyKRkZFVq1Y1+Kh27dqRkZEi8tVXXxXe8MUXX/T29l6xYoX1Y1SZqV9Svb29mzdvbnz9mZmZO3bsEJEePXq4ubmZG6aNmN0BHEfPnj1F5OLFi8eOHbN3LADwf6w93IhTjTguMNwIIw4Ah8Rwo4/hBmUNGUAfGQAAABfgapNwFy9eTE5OFpGmTZsWWUB5//z583fu3DH4qGLFin379l2xYoVGo7F2nCq6cePG1atXRaRixYr169cvoaRWqz148KAYsbS6gd27d+fm5orFz86xAUs6gOOIiIhQXmzfvt2+kQCAjg2GG3GeEcc1hhthxAHgeBhu9DHcoKwhA+gjAwAA4BpcbRLuyJEjyovivqM0aNBAeXH06NHCn0ZHR1+5cuXnn3+2TnRWoVuBodRnEZ87d+7u3bti+loNP/74o/LCwb+hisUdwEE0bdrUy8tL9I68fWk0GueambYqjgbKLBsMN+I8I45rDDfiYCMOCVYfRwNlFsONPoYbayDB6nO0o0EG0EcGAJydo+VYO+JQoIzz1L26fv36vHnzRKRRo0bR0dFFlt66deuuXbtEZNSoUXXr1rV890uWLLlw4YKIjB8/PiQkxPIK09LSlBfh4eFFFtC9X+Sz36KioqpXrx4XF9e1a1fLg7EN3VoNpX5JNXvBdGXFAB8fn8aNGxtTPjs7+9///reIREREPP/88w8ePNiwYcMff/yRlJSUmprasmXLiRMnVqtWTX+TjIyMyZMni0i7du2Uxwubx8IOYBIzminGtdTHx+exxx5LTEy071oNN2/enDt3bkJCwoULF7Rabd26dXv37j1u3LjCjSoLOBqADYYbMXHEKSPDjVizpY4w4pBg9XE0ANcYbkSlEYfhRkUkWH0OezTIAPrIAICTctgca3scCuD/0/6v1NRU5Z3mzZtri3L37t3Q0FARiYiI0Gg0RZYxVceOHZWdJiUlmbptr169OnbsaPDmf/7zH6XCY8eOFbnVvn37lAJz5swpssCHH37o6+ubnp5uajyWU9ZS2LNnj0lbde7cWWnRli1bSi755ptvKiXPnTtn0i6UxccjIiKMLK87yOPHj//ggw/8/PwMel3jxo3v37+vv4kyuSsiCxcuNCk2A5Z3AOOZ0Uyt0S19/fXXlWJ37twxJpgaNWqMHTvW/MYUsnr16oCAgMIZw8/Pb+XKlSruyClwNOB6QkJCJkyYYNImNhhutCaOOGVkuNFauaUmjTgjRoxo1KiRRY35OxKsPo4GXM/gwYONP4lQuMZwo1VpxCmzw83q1atF5OrVqxa15+8VkmB1bHY0+vTpU/iiTcnIAPrKbAaIi4sTkdTUVIvaA9gJI44OhwLQ+b9fwlWsWDE0NPT27dvnz58v/OchIpMnT759+7abm9tnn33msI+uVZYjEBFvb+8iCyg/gReRBw8eFFkgOjp6+vTp8fHxI0eOtEKAKtNoNIcOHVJeG3mnWKlLqxu4d+/ejRs3RKRWrVpGbqK7Je3TTz/18PDo1KlT69at09LSNm7ceO3aNRE5efLk5MmTZ82apdvE+PvdSmZ5BzCeGc0Uo1tao0YN5cWZM2eefPJJC0M11Zo1a1544QWtVlv4o6ysrGHDhmm12mHDhtk4KnvhaABik+FGTB9xyshwI1ZuqR1HHBKsPo4GIC403IhKIw7DjSpIsPoc+WiQAQyQAQCn48g51sY4FIC+vz0TrmHDhiKSkZFx8+ZNg3Jnz55dsGCBiAwZMuSJJ55Qa/cTJ06Mj4+Pj4+vUqWKKhWmp6crL0r9jpKRkVFkgfDw8A4dOsTGxqoSj7WdPn36/v37IlKvXr1KlSqVUDInJ0dZJdzUr4DKc4BFpFy5ckZuor+M+6lTp3744YepU6cuXLjw2LFjui9ba9as0U/EyiY+Pj7FrXVuJMs7gPHMaKYY3dLy5csrL65fv25hnKZKSUl55ZVXihwmdUaOHGn7wOyCowEobDDciOkjThkZbsTKLbXXiEOC1cfRABQuM9yISiMOw43lSLD6HPxokAEMkAEA5+LgOdaWOBSAgSIm4UTk3LlzBuXGjh2bl5cXEBAwY8YM3Zu5ubm6G3PM06lTp0GDBg0aNCgwMNCSevRDUl4U97BH3fv5+fnFVRITE3Pw4METJ06oEpJV6W47KnUZ9CNHjigHp3DJnJycEr6x6T4ydRIuLCxs9+7d+muXBwcHL1682N3dXUSuXr2qP9erbNK8eXPdl0jzqNIBjGRGM8Xoluq+oapyR5tJ5s2bV+o3+KysrDlz5tgmHvviaAAKGww3YvqIU0aGG7FyS+014pBg9XE0AIUqw42ofYJj1a/9JWO4sRwJVp+DHw0ygAEyAOBcHDzH2hKHAjBQ9CScwYqUW7du3bZtm4h88MEHyoMTjx49GhUV5efnFxwcXKdOnS+++MJWAZdCN5mn+7JiQPe+7htAYQMHDgwMDFQWoXZwxn9JLfKpxXFxcc2aNfP39w8KCqpVq9Ynn3ySnZ1tsKHuG1IJR0xfenq60n/atGnj4+Nj8Oljjz2m+zKn++qWnJysLG5g4eJgolIHMIYZzRRTWmrHb6ibNm0yptjGjRutHYkj4GgAChsMN2LiiFNGhhuxfkvtNeKQYPVxNACFhcONWOEEx9pf+0vGcGM5Eqw+Bz8aZAADZADAuTh4jrUlDgVgwFP/H0VOwuXl5Y0bN05Eateu/e6774rI4cOHO3Xq5O7uPm7cuODg4HXr1ik/IJ0yZYoNIy9aUFCQ8sKS7ygBAQEDBw785ptvZs2aZfbT77Ra7datWx8+fGj8JhcuXJDib3EqUnFfPQszWKpbo9G8+OKLq1evjoqKiomJCQgI+O677z788MPdu3dv27ZNucVJYeptYgcPHtTfUWH16tVTfmqp+88yvhWlUqUDGMOMZoopLTX1G2pubu65c+fWrl1rTOGSFf4hbJEuXry4evVq/a5ibWfOnKlbt25xC3FYicMejTLo1KlT9evXt/DXS9DJzc3NysoyvrwNhhsxccQpI8ONWL+lJo04Dx8+vH//vmsPN9evX/f19Q0JCbHZHsWBj0YZdO3aNT8/Pxt3ABd25coV2ww3YrUTHGt/7S9ZmR1ulJ/1bN682fI/RodNsBkZGSkpKfXq1bPZHsXmRyM5OdnDw8P48mQAA2U2AyjtSkhIUGvRrDJOq9WePHmycePGZl/hhJEcc8SxSwdwzENRNmk0mlOnTpEBVGTG9UlPT8+/TcI1aNBAeaE/Cbdo0aKzZ8+KyOzZs319fbVa7SuvvJKfn79v3z5l0ed//etfPXr0mD59+qBBgxo3bqxCUyyg+zZQ3LiuPIBXSvuOkpub6+XlZUnvvHr1at++fQsKCkzdULmTyBhZWVnKmpleXl7NmjUrubDyJTU8PFw5jZk/f/533323cuXKoUOHKgVeeeWVqKioHTt2fPvtt0OGDNFtaOpB0H0Pi4iIKLJAZmam8iIsLMxgE8t/mqBWByiVGc0UU1qqWzfZyOOfnp6+ZcuWLVu2GFNYFRqN5oUXXrDZ7hwcRwPO6OTJk0aWtM1wIyaOOGVkuBHrt9SkEef06dPXrl17/vnnSy2pFhKsPo4GnFGFChWMLGnJcCNWO8Gx9tf+kpXZ4SYpKUlERo0aVWpJtZBg9al4NCpXrmxkSTJAYWU2AyiX72NiYkotCTgjRhwdDgXKjr9NwtWuXdvHxycnJ+fixYvKO/fu3Zs6daqIdOzY8dlnnxWRI0eOHD169O2339Y9dtXDw2PmzJktWrSYOXPmypUrbRu/Id3Dey9cuNC+ffvCBZRfm0mJZ4P37t1bt26d8vs/s9WsWfPGjRsm/dD++PHj/fr1q1mzppHlL1++rNwhGBYWVni5AH3Hjh1TTmOefvpp5Z1nnnnm1q1buq+nujd//PHH3377Tf8bqu7Oo3v37hkTlfI9zM3NrVWrVoU/1Wg0p0+fFpEmTZroalY2CQ4O1l923DyqdABjmNFMMaWlyvOoRe/4l6xy5cpRUVETJkwwLvyS9OzZU5l3L1ndunV//PFHy3dnvJycnJL7uTU47NEog+zSAVxYq1atikxfRbLNcCMmjjhlZLgR67fUpBGnRYsWGRkZ27dvNzr8Yjlsgs3Ly3N3dzfpzn3LOezRKIPs0gFc2JgxY3TXiEtlyXAjVjvBsfbX/pKV2eFGWaTnt99+05/YMI/DJlitVpubm2vj77c2Phqvv/56Xl6ekYXJAIWV2QzQpEkTETl8+LDl7YKCs2nbcNgRx/YdwGEPRdlEBlCXGcfT19f3b5NwHh4e9evXP3HiREpKivLOzJkzU1NTPTw8PvvsM+Ud5bJL9+7d9Tds3rx5aGjoL7/8Yn74Knn88ceVF8X97lX3HaWEH+3Fx8dnZWW9/PLLFgYTGhoaGhpqfPm0tDST6r9165byQvfNrDirVq1SXuhuXQ8PD582bZpBsdTUVCn0lci8Sbj69esHBwcX/nTv3r23b98WkaioKOUdrVarrHtg+e8SRKUOYAxTmykmtlR3tPUXtSiBm5tb+fLl69ata0zhkj3//PPK1HupxVTZnYPjaMBVmbTgg22GGzHrmojLDzdi/ZaaNOK4ubl5eXkx3KiOowFXFRgYaPyPTiwZbsRqJzjW/tpfsjI73Chq1qxZvXp1IwsXhwSrz8ZHw9/fXzf1UioyQGFlPAPUrl27YsWKRhYGHAEjjg6HAjBgeA1OuePs1q1bGo3m+vXr8+bNE5HXXntNN/bv3LlTRB577DGDDRs0aPDXX3/pP4rWLpo0aeLr6ysihw8fLrLA8ePHRSQ4OLh+/frFVRIbGxsZGWn5bfLWpltwoOQnz6WnpytfUp966qkOHToUVyw3N/frr78WkX79+um/r/uGZMy35ytXrigzuEWuYFBQUDB27FgRcXNze+2115Q3z5w5o9Rs+RN6RKUOUCozmikmtlR3tI3/hqqW0aNHl7qWRVBQkNJGl8fRAMRWw42YMuKUkeFGbNJSe404JFh9HA1A1B5uRI0THBt87S8Zw43lSLD6HPlokAEKIwMAzsWRc6yNcSgAA0VPwhUUFNy5c+fjjz/OysoKDg7Wn7tWlhOpVq2awYZ16tSRvz9Mzi58fHx69+4tInv27FHu09F37do15e6efv36FXdL5smTJw8cOOAUa08/8sgjyo8fL126VMK6lzExMSkpKd7e3p9//nlxZVJSUp577rmLFy++9NJL7dq10/9I939t/G1iUszNUHPnzj1y5IiIDBgwQPcAQhWf0CNqdABjmNHMUrcyoDvahf/WrK1SpUqrVq0q4Vcy7u7u//3vf41f3N+pcTQAsdVwI6aMOGVkuBGbtNReIw4JVh9HAxBVhxtR6QTHBl/7S8ZwYzkSrD5HPhpkgMLIAIBzceQca2McCsBA0ZNwInL8+PEVK1aIyOTJk3WPuhWRe/fuFfmYBD8/P9F7UqsdDRs2TESys7Nnzpxp8NHUqVOVh8FGR0cXt3lsbGxQUNCAAQOsGqQq/Pz8evToISK5ubnz588vssyUKVM2bNggIrNnz9Y9xk/foEGDGjduXLNmzc2bN48YMWLZsmUGBYKCgpQvSZcvXy41JN33MIPCWq125syZ48ePF5Hg4GDd6qbyv09UluIf/ysiDx8+XLx48caNG0sNQMztACbtwoxminEt1dHVrPuTtKXevXtv3LixyJUfgoODN2zY0L9/f9tHZS8cDcA2w42YMuKUkeFGrNZSfXYccUiw+jgagCrDjah6gmOlr/0MN0ZGpRYSrD6HPRpkgCKRAQDn4rA51vY4FMDfaP/u0KFDyvuRkZEi0qhRo7y8PP0CgYGB3t7e2kLeeOMNEVm7dm3hj0owcODA6tWrV69e/dKlSyZtqNVqe/Xq1bFjxyI/Ur66ubm5LV26VPfmggULlBn4vn37Fldnbm5uaGjoq6++amowqlAW1N6zZ4/xmyQmJnp5eYmIh4fHhg0b9D+6fv26brXuKVOmFFdD7969W7ZsWbFiRTc3tyFDhly8eLFwmS5duoiIt7d3dnZ2yfEo3UZEPD09ly9fnpeXV1BQcODAAeXuLaWS7du362/SsmVLEalTp04J1Sq9S0Tmz59fcgAKMzqASbswo5lGtlSnRYsWIhIaGmpMYa1WW6NGjbFjxxpZ2Ejp6enTp09v27atm5ubv79/mzZtpk6dmpaWpu5enIVyNJSFecuXL1/GjwZcQEhIyIQJE4wvb5vhRmv0iFNGhhvrtVSfSSPOiBEjGjVqZGTNRtINNz4+Pp6enmU8weqOhru7u5+fXxk/GnABgwcPjoiIML685cONVtUTHCt97We4KdXq1atF5OrVq0ZWbgxdglVWw2vVqlVZTrC6o+Hr62u9wbdPnz7FXbQpEhmgSGUwA8TFxYlIamqqkZUDjkbJsc2bNxeRoKCgsvyV3mDwbdGiRZk9FCjjDCfhDH71/8MPPxgUqFSpkru7e+GKXn31VRHZvHmzSbvv2LGjsqOkpCSTNtSWOAl37dq1qlWrKjW3aNFiwIABugWya9eufePGjeLqXLdunYjs27fP1GBUYcYknFarXbJkiW7lgfbt20+YMGHixIn9+/dXfpsYEBDw1VdflVqJRqPZs2dPpUqVQkNDjx49avDpuHHjlPoPHDhQQiUFBQXKI44bNmxYo0YNEfHy8vL29tZ1pwoVKhj0kKysLOVL9qBBg0qouVOnTkoNRl74M6MDGL8LM5ppfEsVOTk5SoVdu3Y1pr1a60zC6ZQrV27SpElWqty5KKtw7Ny5096BAJYydRJOa5PhRmvciFNGhhurtlTH1BHHGpNwOgMHDnziiSesVLnTCQsLe//99+0dBWApUyfhtCoNN1o1TnCs97Wf4aZU1piE01m6dKmI3L9/3xqVO51hw4Y1a9bMSpWbOgmnJQMUpQxmACbh4BqUH4Ca+nsVV6U8zjMlJcXegQD2YbgcZWBgYPXq1ZXXffr00d1qpD/6ajSavLw8g/dzcnKUT8UBVKtWLTExsXPnziKSmJj43XffKQ+r6969+/79+8PCworbMDY2tmHDhm3btrVdrBZ7/fXXExISlGfy/frrr9OmTZsyZcr69es1Gs2IESPOnDkzZMiQUitxc3N76qmnli1bdvv27ejoaK1Wq/9pt27dlBfKNGFxTp06lZGRISK9evU6ePBgnz59CgoKcnNzRcTb23vo0KFHjx595pln9Dc5cuSI0pdKXkb8/fffr1y5cnh4eEFBgUFsRTKjAxi/CzOaaXxLFceOHVMqLPwHCAD2YoPhRowbccrIcGPVluow4gBwNKoMN6LGCY71vvYz3ADFIQMURgYAAMDZeRZ+6+rVqyVsoEyzXb16tW7duvrvX7t2TUTKly9v0u537dplUnnjhYWF/fTTT3/++eeOHTtu375dvXr1zp07K0vJFefGjRvbtm2bMWOGlUKynt69e/fo0WPPnj379+9PTU0NCQlp0KBB9+7dlbuZTKrH398/MTHx+PHj+scqMjLS19c3Ozu75Ek43TLiERERVapUSUhIuHXr1tmzZ729vRs2bFhk32jbtq0xXzqffvrplJQUEenVq5dGoyn8SMLCTO0Axu/CjGaK0S1V6FaF7d69u5GbAIANWHu4EeNGnDIy3Ig1W6rDiAPAAak13IhlJzjW+9rPcAOUgAxQGBkAAACnVsQkXMkeeeSRQ4cOnT9/3mAS7sSJE76+vsr9So6jefPmygq8xli5cqWbm9vQoUOtGpKVeHp6dunSRVnZ3GweHh6VKlW6cuXK1atX9b/PKU9IXr9+/aZNm7Kzs319fYvcXP+rm/KicuXKlStXtiSkIoM0vrBJHcDIXdigmZs2bRKRevXqlTxtDAC2Z9XhRowbccrIcCOMOADKMFWGG7HsBIfhxtQdlYDhBiYhAxSJDAAAgJMyXI6yVH379hWRP/74Q//N8+fP37p1q3PnzgEBAaqFZnOxsbHPPPNMlSpV7B2ILehuRNKXk5Nz/fp1EWnSpInBR6NGjRKR1NRUZXX+Iilf3UJCQqw0F5uZmenv72+Nmk3ahbWbeefOnR07dojIyJEjrVE/ANiSqcONGDHilJHhRhhxAMAUqp/gMNyoheEGNkAGMHsXZAAAAKzN5Em4Hj16+Pj4xMXFZWVl6d78/PPPRaRPnz5qhmZbv/3227lz52JiYuwdiI0MGDAgPj7e4M1ly5YVFBQ0adKkVq1aBh917dq1UaNGIrJo0aIiK8zKyjp+/Ljo3Tyluq+++kqZA7aeUndhg2YuX748Pz8/MDDw5ZdfttIuAMBmTB1upLQRp4wMN8KIAwAmUvcEh+FGRQw3sAEygHm7IAMAAGADJk/CBQUFvf/++5cvX37++ecvXryYlZU1Z86chQsXNmjQYPjw4dYI0TZiY2OrVKnSs2dPewdiI5MnT37xxRcHDBjw008/PXjwIDU1dfHixe+9956np+eKFSsKl3dzc1uwYIGIHDhwoMhbzP7888/8/Hyx2le3hw8frl69etCgQdao3PhdWLuZWVlZc+fOFZGpU6dWqlTJGrsAAFsydbiR0kacMjLcCCMOAJhI3RMchhu1MNzANsgA5u2CDAAAgA2YPAknIpMmTXrzzTe3bNlSr149f3//d999t0mTJtu2bSvuUWGOLyMjY82aNcOGDfP0NPkheU5q+PDhGzZsOHz4cNeuXcuVK1epUqU33nijatWqP/30U8uWLYvcpFOnTsOGDRORadOmFf608DLi6nrnnXdGjRpl1f8gY3Zh7WbOnTv31q1bzZo1e/vtt61RPwDYmBnDjZQ44pSR4UYYcQDAROqe4DDcqIXhBrZBBjBvF2QAAABswJwh38PDY8GCBW+++eaOHTsyMjKaNWvWo0cPd3dz5vMcxNq1azMyMqKjo+0diE316dPn6aef3rNnz6FDhzw9PVu2bNm2bduSVwyfNWvWpk2bNmzYsH79+v79++t/ZNWvbkePHq1SpcrAgQNVr9nUXVi1mefOnZs6daq7u/sXX3xh0vOZAcCRmTHcSPEjThkZboQRBwBMp+IJDsONKhhuYEtkADN2QQYAAMAGzL/v5tFHH3300UdVDMWO4uLinnjiCZdpjvG8vb27devWrVs3I8uHhobGx8f36tVr1KhRrVq1qlGjhu6jL7/8ctmyZSISEBCgepxNmzZt2rSp6tWasQvrNTMrK+ull17Kzs6eM2dO69at1a0cAOzL1OFGih9xyshwI4w4AGAWtU5wGG4sx3AD2yMDmLoLMgAAADbgxD9fq1OnTp06dVSpKjk5efTo0apU5fKioqKWL1+ekpLSu3fvjIwM3ft+fn4BAQHW+IbqUKzUTK1WO3z48IMHD7777rtjx45Vt3IAcFJFjjhlZLgRRhwAsBWGG4YblGVkADIAAADW5sSPQPv888/VqiopKUmtqsqCYcOGKU/39fLysncsLsLNzW3VqlWrVq3y8fGxdywA4EAYcVTHiAMAhTHcqI7hBk6EDKA6MgAAAPqceBIOdsQXKdVxSAGgSKRH1XFIAaAwcqPqOKRwInRX1XFIAQDQceLlKAEAAAAAAAAAAADHxCQcAAAAAAAAAAAAoDIm4QAAAAAAAAAAAACVMQkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFCZp70DgKEHDx6kp6fbOwo4GY1GY+8QADgTrVabnZ3NcANT5eTkaLVae0cBwGlotdr8/HyGG5gqMzPT3iFABWQAmIcMAABwMUzCOZDU1FQR6dWrl70DgVNKTEy0dwgAnMb9+/dnz549e/ZsewcC5xMYGGjvEAA4jaNHj54+fbpixYr2DgROKS8vz94hwCInTpy4dOkSGQDm4cYvAIDLYBLOgXTr1m3q1KmPPPKIm5ubvWOBk7l06RLTtwCMt3z58oKCgqCgIHsHAieTnp7OpTQAxouNjd23b1/16tXtHQicTF5e3vXr1+vUqWPvQGCRuLi4o0ePVq1a1d6BwMnk5ubeunUrJCTE3oEAAKAOJuEciLu7+//8z//YOwoAgOsbPny4vUMAALi+tm3btm3b1t5RALCPyMjIyMhIe0cBAABgZ+72DgAAAAAAAAAAAABwNUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDIm4QAAAAAAAAAAAACVMQkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypiEAwAAAAAAAAAAAFTGJBwAAAAAAAAAAACgMibhAAAAAAAAAAAAAJUxCQcAAAAAAAAAAACojEk4AAAAAAAAAAAAQGVMwgEAAAAAAAAAAAAqYxIOAAAAAAAAAAAAUBmTcAAAAAAAAAAAAIDKmIQDAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyJuEAAAAAAAAAAAAAlTEJBwAAAAAAAAAAAKiMSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDJPewcAAAAAAHBBubm5d+/e9fLysncgcD5arbZixYr2jgIWyc3NvXfvnqcn151gMjMyQEpKire3t5XigQvLzc2tUqWKvaOApW7evOnj42PvKOB88vLyKleubIMd8WUIAAAAAKC+Nm3aHDlyxN5RwFldv379H//4h72jgPkef/zxs2fP2jsKOKt79+6VK1fOyMJTpkyZNGmSVeOBC/v3v/89ZcoUe0cB87377rtz5syxdxRwVrNnzx43bpy198IkHAAAAABAfbVq1Xrw4MEnn3xi70DgZPbt2zd37lyNRmPvQGCRGjVqeHp6MjUCU+3evXvRokX5+fnGbxIWFiYisbGxgYGBVosLLujhw4cvv/xy1apV7R0ILFKtWjUR+frrr1l9ASZJT09//fXXQ0NDbbAvJuEAAAAAAOrz9/evWLHiwIED7R0InIxWq7V3CFCBv79/aGgoGQCmyszMNHUTZSHKvn37sowtTHLv3j353/4D56UsRPncc8+xIiVMkpycLCK2mbt1t8E+AAAAAAAAAAAAgDKFSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDJPewdgvvz8fI1G4+3tbXlVOTk5Pj4+ltcDAAAAAHA6aWlpWq22XLlyXl5e9o7FFWi12rS0NBEJDg52d+feXzg6MoC6yAAloLOpi84G50IGUJcTZQCHDq5ko0aNGj58uCpV1a5de9GiRapUBQAAAABwIkuWLAkJCenZs2d+fr69Y3ERbm5uY8aMqVSp0ltvvWXvWIBSkAFURwYoDp1NdXQ2OBEygOqcKAM48S/hbt68mZGRoUpVLVq0mD9//htvvKFKbQAAAAAAs2VmZirnev7+/kFBQSWUzM7OvnfvnoiUK1fOz8/PjH0lJCS89dZbNWrU2Lhxo3k1oEjLly9PSkpavHhxjRo1PvjgA3uHA2dCBnABTpQBbNbf6GxW4kSdDQ6IDODsnCUDOPEv4YxRUFCQlJT0888/nzx5UqPRFFcsOjr6zJkzf/zxhy1jAwAAAAAUNm7cuLCwsLCwsLi4uJJLLliwQCm5a9cuM3aUnJw8dOjQgoKCZcuWValSxaxgbcfI01sH4ePjs3LlSl9f3wkTJvz+++/2DgfOhAxQJDKAldimv9HZrMeJOhscEBmgMDKANbjsJJxGo5k3b17NmjXr16/fpUuXJk2a1KlTZ/78+UUW7tOnT0hISGxsrI2DBAAAAAAYOHDggPKiTZs2RpZs3bq1GTsaM2bMgwcPhgwZ0r17dzM2L9Xs2bMjIiIiIiIsPNk06fTW9oprZv369SdNmqTVakeOHMnKSzAeGcAAGcCqbNPf6GxqKbKlztLZ4IDIAPrIANbjmpNwOTk5AwcOHDt2bHJysoj4+/uLyJUrV0aPHv38888XnsL19vYeMmTI6tWrHz58aIdwAQAAAAAiIvLw4cMTJ06IiLe3d7NmzUouvH//fhGpV69epUqVTN3Rtm3b1q5d6+HhMWXKFLMiLd2WLVsOHTp06NAhS+56NvX01vZKaOY777xTuXLl48ePz5s3zx6hwfmQAQyQAazKNv2Nzqai4lrq+J0NDogMoI8MYFWuOQk3adKkdevWiciIESOUR8cdP3584MCBIrJ27doZM2YU3iQmJub+/fvff/+9rWMFAAAAAPyvw4cPKzexNm3a1MfHp4SSKSkpV65cEbNuSdZoNKNHjxaRwYMH161b19xgS6LVahMTE5XXrVq1MrseM05vbankZvr5+Y0dO1ZEPvroo9u3b9s6ODghMoABMoBV2aC/0dlUVEJLHb+zwQGRAfSRAazKBSfhzp8/P3v2bBEZOnSostCqm5tbkyZN4uPj+/fvLyKTJk26dOmSwVZNmzZt3rx5qcu/AgAAAACsR7nRWIxYF8j4koVt27YtKSlJRF5//XVTtzVSQUFBQkLC7t279+7da/aNyead3tpSqc185ZVXPD09MzMzOd2GMcgA+sgA1maD/kZnU1HJLXXwzgYHRAbQIQNYmwtOwi1dujQ/P9/X13fmzJn677u7u8+ZM8fDwyM/P3/VqlWFN4yJidm9e7fd+xMAAAAAlFnGX+Yw/jEehS1ZskREatas+eSTT5q6rZE8PT0jIyMjIyM7dOhgdiVmn97aTKnNDA0NjYqKEpEvvvhCq9XaNjo4HzKAPjKAtdmgv9HZVFRySx28s8EBkQF0yADW5oKTcN98842IREZGVq1a1eCj2rVrR0ZGishXX31VeMMXX3zR29t7xYoV1o8RAAAAAFAEUy+IeHt7N2/e3KRdZGZm7tixQ0R69Ojh5uZmVpg2YvbprUPp2bOniFy8ePHYsWP2jgWOjgygjwxgbdbub3Q2G3PkzgYHRAbQIQNYm6tNwl28eFF5eGDTpk2LLKC8f/78+Tt37hh8VLFixb59+65YscJBnjQIAAAAAGXKjRs3rl69KiIVK1asX79+CSW1Wu3BgwfFiMd4FLZ79+7c3Fyx7MkZNmDJ6a1DiYiIUF5s377dvpHAwZEB9JEBrM0G/Y3OZmMO29nggMgAOmQAG3C1SbgjR44oL4rrNA0aNFBeHD16tPCn0dHRV65c+fnnn60THeCsHPBnvHbE0QAAayC7GuCAoGzSrfZT6nPvz507d/fuXTFrJboff/xReeHg10QsPL11HE2bNvXy8hK9I29HZFd9jnY0yAD6yADWZoP+RmezMQfsbI6WZu3FAY8DGUCHDGADnrpX169fnzdvnog0atQoOjq6yNJbt27dtWuXiIwaNapu3bqW737JkiUXLlwQkfHjx4eEhFheYVpamvIiPDy8yAK694t89ltUVFT16tXj4uK6du1qeTCAU7t58+bcuXMTEhLu378/derUb7/9tnfv3uPGjatWrZq9Q7MD5WisWbNGRLp3716vXr2yfDQAQEW64ebcuXMi8sgjj5TlBKs7Gjdv3pw1a9aGDRvK8tFA2aRbF6jUCyKWPA5KWaPGx8encePGpRbOzs7+97//LSIRERHPP//8gwcPNmzY8McffyQlJaWmprZs2XLixImF/0gzMjImT54sIu3atVMeaG8GC09vTWVGS41spo+Pz2OPPZaYmGjH1YF0Cfb8+fMi0rx58759+5bZBOuwgy8ZQB8ZwNps0N/obEWyXksdpLMpOfa7774TkRdeeGHChAkOkmNtTzfcJCUlicgTTzzRr18/BzkUZAAdMoAtaP9Xamqq8k7z5s21Rbl7925oaKiIREREaDSaIsuYqmPHjspOk5KSTN22V69eHTt2NHjzP//5j1LhsWPHitxq3759SoE5c+YUWeDDDz/09fVNT083NR7AlaxevTogIKBwxvDz81u5cqW9o7M1jgYAWAkJVh9HA65n8ODBERERJm3SuXNnpedv2bKl5JJvvvmmUvLcuXOmBqY87sLI2HSnkOPHj//ggw/8/PwM/kgbN258//59g62Uu1dFZOHChaaGp2P56a1JzGip8c18/fXXlZJ37twpNZLVq1eLyNWrVy1qz98rJMHq2Oxo9OnTp/BFm5KRAfSV2QwQFxcnIqmpqcYHb8YmWpv0NzpbybVZo6UmdTbl503Lly+3qD1/x4ijY7NDsWDBAhHJzs42aSsygE6ZzQDXr18XkW+//dai9hjn/34JV7FixdDQ0Nu3byv3hRU2efLk27dvu7m5ffbZZw77LEEle4qIt7d3kQWU3ySKyIMHD4osEB0dPX369Pj4+JEjR1ohQMAJrFmz5oUXXtAW9VPxrKysYcOGabXaYcOG2T4wu+BoAICVkGD1cTQAEdFoNIcOHVJeG3lXcqmP8Sjs3r17N27cEJFatWoZU153+/Onn37q4eHRqVOn1q1bp6Wlbdy48dq1ayJy8uTJyZMnz5o1S38r42+vLoHlp7cmMaOlxjezRo0ayoszZ848+eSTlkdrPBKsPkc+GmQAA2QAq7JBf6OzFceqLbVvZ3PkHGtjDn4oyAD6yAA28LdnwjVs2FBEMjIybt68aVDu7NmzyqzykCFDnnjiCd37BQUFGRkZZu9+4sSJ8fHx8fHxVapUMbsSfenp6cqLUjtNcWGHh4d36NAhNjZWlXgAp5OSkvLKK68UOUzqjBw5UrlZwOVxNADASkiw+jgagOL06dP3798XkXr16lWqVKmEkjk5OcpDKYo8D8/JySnhLFV58ryIlCtXzpio9B8ZcurUqR9++GHq1KkLFy48duyY7tx+zZo1Bn/CylY+Pj7FPV3DGJaf3prEjJYa38zy5csrL2ycykiw+hz8aJABDJABrEqV/kZnM49VW2rHzubgOdaWHP9QkAH0kQFsoIhJOBFRlgXXN3bs2Ly8vICAgBkzZuje/Ouvvzp16vTll1+avftOnToNGjRo0KBBgYGBZleiLzc3V3mh0WiKLKB7Pz8/v7hKYmJiDh48eOLECVVCApzLvHnzSk2pWVlZc+bMsU089sXRAAArIcHq42gACt0trqU+cuPIkSPKqZ9Bybi4uGbNmvn7+wcFBdWqVeuTTz7Jzs422Fb352bSNZGwsLDdu3frPyojODh48eLF7u7uInL16lWDO1mVrZo3b667bGEGVU5vjWdGS41vpu6aiCr3UBuPBKvPwY8GGcAAGcCqLOxvdDZLWLWlduxsDp5jbcnxDwUZQB8ZwAaKnoQzWJFy69at27ZtE5EPPvigWrVqq1evfvvttzt37lyvXr1ffvnFZrEaQzeZp+s9BnTv6/5LChs4cGBgYKCyojRQ1mzatMmYYhs3brR2JI6AowEAVkKC1cfRABTGXxDR3UKrK6nRaF544YWYmJgqVarMnTt3+fLljRo1+vDDD/v27WtwQUF3Tl7CKaFOenq6cnbcpk0bHx8fg08fe+wx3bUD/SsFycnJynI6liwNJCqd3hrJjJaa1Ex7XRMhwepz8KNBBjBABrAqs/sbnc2SHYn1W2rHzubgOdaWHP9QkAH0kQFswFP/H0VOwuXl5Y0bN05Eateu/e6774rI4sWLk5KSmjRp0q5du19//dWG0ZYuKChIeWFJpwkICBg4cOA333wza9Yss59+d+vWraioKEf7/3ZqN27cCA4O9vX1tXcgLu7SpUvGFEtKSqpXr561g9F348aNihUrFk7QVuWwR6Os0Wq1N2/etH0HQNmUlpbm4eFh+ZdLlMxhE6xdOoDDHo0yKDU11cvLy8j7VVGqW7dumbTkSeEL68Up/FiI+fPnf/fddytXrhw6dKjyziuvvBIVFbVjx45vv/12yJAhum1NujH54MGDBjsyUK9ePWUhGd2pqEkNKZkqp7dGMqOlJjXTpGsiV69eFZEnn3zS09Oz1MIlc9gEm5mZmZmZWblyZVvu1MZH4+bNmyY1kAxgoMxmgL/++ktEWrZsqfwewhhKtSb9RMPs/kZns2RHYv2WmtTZCgoKROSDDz6YPn16qYVL5ZgjTn5+/q1bt6pUqeLh4WGzndr4UCgLS5a8+qUBMoC+MpsBcnJyROSdd96ZMGFCqYUVyvXJkJCQ4pbuLJK3t/ffvtE2aNBAeaE/Cbdo0aKzZ8+KyOzZs5X5j127dilTUx988IHDTsIVd6CVJyJKaZ0mNzfXy8vL7Bk4EQkMDOzSpYsqK6VCceTIkXr16un/BcIaYmNjjfnm6u7u3qVLF0v+RkyVmJj4yCOPqLV0rZEc9miUQYmJiQ0bNvT397d3IHB9Fy9e9Pb2rl69ur0DcXEOm2AvXLjg6+tbrVo1m+1RHPholEFJSUn+/v7/+Mc/7B2Ii/j555+NvyCSlZWlPBHAy8urWbNmJRdWLoiEh4eHhIQo7zzzzDO3bt3SXRDRvfnjjz/+9ttv+tdETPoj0p3zR0REFFkgMzNTeREWFlZ4KwtvTFbr9NYYZrTUpGbqeoIxx1+5XNWhQ4eAgIBSC5fMYRNsampqSkpKo0aNbLZHsfnR+OGHH4w/fSMDFFZmM4DSnMjISONvwTx37tzu3buNn2OwpL/R2SzZkVi/pSZ1NqXPPProo7rfpVjCMUecvLy8o0ePNmvWzPL7Woxn40Nx8uTJO3fuGF8PGcBAmc0AysqWjz32mPGTwVqtNjEx8dFHHzXp+qSXl9ff/vxq167t4+OTk5Nz8eJF5Z179+5NnTpVRDp27Pjss88a3wZ70T1K8cKFC+3bty9c4MKFC8qLChUqFFfJvXv31q1bp/z+z2z+/v6zZ8+2pAbALvbt23f8+PFSi9WvX3/p0qU2iMe+OBoAYCUkWH0cDbiqF198MSkpycjCly9fVq7XhIWFlXzh9dixY0q1Tz/9tO7N8PDwadOmGZRMTU0VvTV2FLp/3rt3r9SolHN+Nze3Vq1aFf5Uo9GcPn1aRJo0aaK/F2Wr4OBg/QddmEGV01sjmdFSk5qp3KUuhf47iqRc4pkxY4bl98SQYPXZ+Gj07dtX9/9eKjJAYWU2AwQHB4vInDlzKlasaGT8K1as2L17t/GXKy3pb3Q2S3Yk1m+pSZ1NMWzYsFdeecXIwiVgxNGx8aFYuHDhb7/9Znx5MoCBMpsBlN9bjxgx4oUXXjC2Aeb62y+7PTw86tevLyIpKSnKOzNnzkxNTfXw8Pjss8+sHYoqHn/8ceWF8rvFwnSdpnHjxsVVEh8fn5WV9fLLL6sdHeAE+vXrZ0yx/v37WzkQh8DRAAArIcHq42gAInLr1i3lhe5CQHFWrVqlvHj++edLKJabm/v1119LoT8xM66J1K9fX7kobGDv3r23b98WkaioKN2bWq1WWWnHwruSRaXTWyOZ2lJTm6k72jZe2oQEq8+RjwYZoDAygPWo29/obCaxdkvt2NkcOcfamIMfCjKAATKADRgur6z8/PbWrVsajeb69evz5s0Tkddee033n+HgmjRpoqyZefjw4SILKPPwwcHBynRjkWJjYyMjIy2cQwac1OjRo0v9cXFQUNDYsWNtE499cTQAwEpIsPo4GoDorW/z8OHDEoqlp6crF0SeeuqpDh06FFcsJSXlueeeu3jx4ksvvdSuXTv9j3Tn5KX+RufKlSvK/alFLphTUFCg/FW6ubm99tpruvfPnDmj1Gzh8zlEpdNbY5jRUlObqTvaNr4mQoLV58hHgwxQGBnAelTsb3Q2k9igpXbsbI6cY23MwQ8FGcAAGcAGip6EKygouHPnzscff5yVlRUcHKysSOkUfHx8evfuLSJ79uxRJk71Xbt2TZlu7devX3G/Uj958uSBAwdiYmKsHSrgmCpVqrRq1aoSHoDs7u7+3//+18aPELcXjgYAWAkJVh9HAxCRRx55RFkR6NKlSyU8Sj0mJiYlJcXb2/vzzz8vssCgQYMaN25cs2bNzZs3jxgxYtmyZQYFdA99LPXG5JKfPzF37twjR46IyIABA3SPVy91K5NYfnprJDNaamozdUfbxg/dJMHqc+SjQQYojAxgPar0NzqbGWzQUjt2NkfOsTbm4IeCDGCADGADRU/Cicjx48dXrFghIpMnT9Y96tYpDBs2TESys7Nnzpxp8NHUqVOVp/NFR0cXt3lsbGxQUNCAAQOsGiTgyHr37r1x48Yil18PDg7esGFDWfjtvA5HAwCshASrj6MB+Pn59ejRQ0Ryc3Pnz59fZJkpU6Zs2LBBRGbPnt20adMiy2RlZfn5+QUGBrq5uWVlZemeJK8TFBSknJZfvny55JB05/wGJbVa7cyZM8ePHy8iwcHBBs9u2L9/v/KiuAfOP3z4cPHixRs3bix57wrzTm9N2oWY1dJSm2lAV7PumoPNkGD1OezRIAMUiQxgJar0NzqbqbsQq7VUn307m8PmWNtz5ENBBiiMDGB12r87dOiQ8n5kZKSINGrUKC8vT1sM5dDMmzevuAKlGjhwYPXq1atXr37p0iVTt+3Vq1fHjh2L/Ej5Q3Jzc1u6dKnuzQULFigz8H379i2uztzc3NDQ0FdffdXUYADXk56ePn369LZt27q5ufn7+7dp02bq1KlpaWn2jss+lKOhLMxbvnz5Mn40AEBFuuHGx8fH09OzjCdY3dFwd3f38/Mr40cDLmDw4MERERHGl09MTPTy8hIRDw+PDRs26H90/fp13cMhpkyZUmpVGo1mz549lSpVCg0NPXr0qMGnXbp0ERFvb+/s7OwSKlFOikXE09Nz+fLleXl5BQUFBw4cUG4WVmrYvn27wVYtW7YUkTp16hRX7RtvvKFsPn/+/FIbojXr9NbUXZjR0lKbaaBFixYiEhoaakzh1atXi8jVq1eNrNwYugSrLE/UqlWrspxgdUfD19fXeoNvnz59irtoUyQyQJHKYAaIi4sTkdTUVCMrN28Ttfobnc3anc2YluozqbPdvXtXRJYvX25MYeMpObZ58+YiEhQUVJa/0hsMvi1atLDGoViwYIGIlPxXZoAMUFgZzADXr18XkW+//daYwhYynIQz+A3mDz/8UMLGlk/CdezYUdlRUlKSqduWMAl37dq1qlWrKjW3aNFiwIABuhVLa9eufePGjeLqXLdunYjs27fP1GAAF1auXLlJkybZOwqHoPwseufOnfYOBABc0MCBA5944gl7R+EowsLC3n//fXtHAVjK1Ek4rVa7ZMkS3UI37du3nzBhwsSJE/v37+/n5yciAQEBX331lfG1rV+/Xjkl1Gg0+u+PGzdO2cWBAweK27agoCAwMFBEGjZsWKNGDRHx8vLy9vbWnSxXqFBh8+bNBltlZWUp13QGDRpUXM2dOnVSamjUqJExrTDj9NakXZjRUmOaqS8nJ0epsGvXrsaUt8YknM7SpUtF5P79+9ao3OkMGzasWbNmVqrc1Ek4LRmgKGUwA9hmEk6ran+js1mpsxnZUh1TO5uVJuEUyi9y1q5da43KnY7ycLWUlBRrVG7GJJyWDFBIGcwAtpyEM1yOMjAwsHr16srrPn366CZ+nUu1atUSExM7d+4sIomJid9999358+dFpHv37vv37w8LCytuw9jY2IYNG7Zt29Z2sQIAAAAARETk9ddfT0hIqFOnjoj8+uuv06ZNmzJlyvr16zUazYgRI86cOTNkyBDja+vdu7e/v39iYqLyPHmdbt26KS8OHjxY3LanTp3KyMgQkV69eh08eLBPnz4FBQW5ubki4u3tPXTo0KNHjz7zzDMGWx05ciQvL09KfGrF+++/X7ly5fDw8IKCAq1WW2orzDi9NWkXZrTUmGbqO3bsmFKhk15hgM2QAQojA1iPiv2NzmalzmZkS3UctrPBAZEBDJABrMqz8FtXr1612e537dplpZrDwsJ++umnP//8c8eOHbdv365evXrnzp2VpeSKc+PGjW3bts2YMcNKIQEAAAAASta7d+8ePXrs2bNn//79qampISEhDRo06N69u3LzrEk8PDwqVap05cqVq1ev6p8MRkZG+vr6Zmdnl3BNRPfUioiIiCpVqiQkJNy6devs2bPe3t4NGzYsX758kVu1bdu21GsQTz/9dEpKioj06tVLo9F4eHiU2hBTT29N2oUZLTWmmfp0j73o3r278VuhbCIDFEYGsB61+hudzUqdTUzsb47c2eCAyAAGyADWU8QknCtp3ry5sgKvMVauXOnm5jZ06FCrhgQAAAAAKIGnp2eXLl2UB2kY6dChQ61atTJ4MycnR1lnpkmTJvrv+/n59ejRY/369Zs2bcrOzvb19S1cof6VAuVF5cqVK1eubHxIxjDmgoiOSae3xu/CBi3dtGmTiNSrV6/k+2IBBRmgSGQAKzG1v9HZzN4FnQ0OiAxQGBnAGgyXoyzLYmNjn3nmmSpVqtg7EAAAAACACQYMGBAfH2/w5rJlywoKCpo0aVKrVi2Dj0aNGiUiqampyuPHClOuFISEhCjrFKkuMzPT39/fGjWbugtrt/TOnTs7duwQkZEjR1qjfkDIABbsggxgKjqb2bugs8EFkAHM3kUZzwDmTMJt3bp15syZM2fO3Ldvn4js3LlT+eeePXvUDs92fvvtt3PnzsXExNg7EAAAAACAaSZPnvziiy8OGDDgp59+evDgQWpq6uLFi9977z1PT88VK1YULt+1a9dGjRqJyKJFiwp/mpWVpTzVQ3evruq++uqrvn37Wqly43dhg5YuX748Pz8/MDDw5ZdfttIuADKAebsgA5iBzmbeLuhscA1kAPN2QQYwZznKtWvX6veqzZs3b968WUTGjx8fGRmpVmQ2FhsbW6VKlZ49e9o7EAAAAACAaYYPHx4cHPzOO+907dpV92adOnVWrFjRsmXLwuXd3NwWLFjQuXPnAwcOFF5Z6M8//8zPzxerXSl4+PDh6tWrldt1rcTIXVi7pVlZWXPnzhWRqVOnVqpUyRq7AIQMYO4uyABmoLOZtws6G1wDGcC8XZABzJmEi4uLi4uLUz0UO8rIyFizZs2oUaM8PV38IXkAAAAA4JL69Onz9NNP79mz59ChQ56eni1btmzbtm0Jy+N06tRp2LBhK1eunDZt2vr16/U/KvzUCnW988471j79NHIX1m7p3Llzb9261axZs7ffftsa9QM6ZAAzdkEGMA+dzYxd0NngMsgAZuyCDMCck4jI2rVrMzIyoqOj7R0IAAAAAMBM3t7e3bp169atm5HlZ82atWnTpg0bNqxfv75///669616peDo0aNVqlQZOHCg6jWbsQurtvTcuXNTp051d3f/4osvPDw8VK8fMEAGMHUXZACz0dlM3QWdDa6EDGDqLsgA5jwTzvXExcU98cQTjz76qL0DAQAAAADYSGhoaHx8vJeX16hRo65evap7/8svv8zIyMjIyAgLC1N9p02bNv34449Vr9a8XVivpVlZWS+99FJ2dvasWbNat26tbuWAKsgAZACbobPR2VCWkQHIAE48CVenTp06deqoUlVycvLo0aNVqQoAAAAA4CyioqKWL1+ekpLSu3fvjIwM5U0/P7+AgICAgAD7xmYDVmqpVqsdPnz4wYMH33333bFjx6pbOaAiMgAZwGbobHQ2lGVkgDKeAZx4OcrPP/9craqSkpLUqgoAAAAA4ESGDRs2aNAgEfHy8rJ3LC7Czc1t1apVq1at8vHxsXcsQCnIAKojAxSHzqY6OhucCBlAdU6UAZx4Eg4AAAAAAMs5/qm70+GQwonQXVXHIS0OR0Z1HFI4Ebqr6pzlkDrxcpQAAAAAAAAAAACAY2ISDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypiEAwAAAAAAAAAAAFTGJBwAAAAAAAAAAACgMibhAAAAAAAAAAAAAJUxCQcAAAAAAAAAAACozNPeAQAAAAAAXNDNmzf/+uuv119/3d6BwMlcvHhRRAoKCuwdCCySkpJy9epVMgBMde7cORHRarXGb5KWliYi48aN8/HxsVZYcEW5ubkikpqaau9AYJE7d+6IyJtvvunh4WHvWOBMHj58KCJ37961wb6YhAMAAAAAqC80NDQvL2/nzp32DgROJjc3t1y5ckFBQfYOBBYJDQ09d+4cGQCmysnJqVChgr+/v/GbhIaGBgQE7N27183NzXqBwSUFBARUrlzZ3lHAIpUrVw4ICNi1a5e9A4GT0Wq1/v7+oaGhNtgXk3AAAAAAAPWtXr3a3iEAsJtNmzbZOwSUFUOHDh06dKi9owBgH6NGjRo1apS9owBKwjPhAAAAAAAAAAAAAJUxCQcAAAAAAAAAAACojEk4AAAAAAAAAAAAQGVMwgEAAAAAAAAAAAAqYxIOAAAAAAAAAAAAUBmTcAAAAAAAAAAAAIDKmIQDAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyJuEAAAAAAAAAAAAAlTEJBwAAAAAAAAAAAKiMSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDIm4QAAAAAAAAAAAACVMQkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypiEAwAAAAAAAAAAAFTGJBwAAAAAAAAAAACgMibhAAAAAAAAAAAAAJUxCQcAAAAAAAAAAACojEk4AAAAAAAAAAAAQGVMwgEAAAAAAAAAAAAqYxIOAAAAAAAAAAAAUBmTcAAAAAAAAAAAAIDKmIQDAAAAAAAAAAAAVOZp7wDwf+7cufPMM880atTI29vb3rHAyZw+fTo6Ojo6OtregcB8169f79+//2OPPebpSWaGaU6ePPnmm28OHjzY+E0GDhyo0WgqVapkvajgkm7evBkaGrp8+XJ7BwKL9OnTx9fXNzg42N6BwMlcv369Tp068+fPt3cgAAAAAOA0uNTrQP78888DBw5cu3bN19fX3rHAyVy5ciUoKIhJOKe2f//+gwcPJicn+/j42DsWOJnLly9XrVrVpEm4TZs2+fn5VaxY0XpRwSXdvn3by8uLSThnt2XLlgoVKlSoUMHegcDJ3Lp1KzExkUk4AAAAADAek3AORLkf+dtvv33qqafsHQucTM2aNRs0aGDvKGAR5TdJGzZsaNWqlb1jgZOpVKmSqRkgMDBw5MiRH3/8sZVCgqt69dVXf//9d3tHAUt5e3u/++67H374ob0DgZN58cUXk5KS7B0FAAAAADgTngkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypiEAwAAAAAAAAAAAFTGJBwAAAAAAAAAAACgMk97B2C+/Px8jUbj7e1teVU5OTk+Pj6W11N2pKWlabXacuXKeXl52TsWV6DVatPS0kQkODjY3Z2pcTg6MoC6yAAlo7+pi/4G50IGUBcZAAAAAABszIlPvUaNGjV8+HBVqqpdu/aiRYtUqaosWLJkSUhISM+ePfPz8+0di4twc3MbM2ZMpUqV3nrrLXvHApSCDKA6MkAJ6G+qo7/BiZABVEcGAAAAAAAbc+Jfwt28eTMjI0OVqlq0aDF//vw33nhDldrsIjMzUzka/v7+QUFBJZTMzs6+d++eiJQrV87Pz8/UHSUkJLz11ls1atTYuHGjGZujOMuXL09KSlq8eHGNGjU++OADe4cDJ0MGcHZOlAFs1tmE/mY1TtTf4GjIAC6ADAAAAAAAtuTEv4QzRkFBQVJS0s8//3zy5EmNRlNcsejo6DNnzvzxxx+2jE1d48aNCwsLCwsLi4uLK7nkggULlJK7du0ydS/JyclDhw4tKChYtmxZlSpVzA3WdozsAI7Ax8dn5cqVvr6+EyZM+P333+0dDpwMGaAwJ/rzF6fKALbpbEJ/syYn6m9wNGSAIpEBAAAAAADFcdlJOI1GM2/evJo1a9avX79Lly5NmjSpU6fO/Pnziyzcp0+fkJCQ2NhYGwepogMHDigv2rRpY2TJ1q1bm7qXMWPGPHjwYMiQId27dzd1W2PMnj07IiIiIiLC8v8LkzqA7RXZ0vr160+aNEmr1Y4cOZJll2ASMoA+B//zFyfPALbpbGLl/lbGhxtxnv4GR0MGMEAGAAAAAACUzDUn4XJycgYOHDh27Njk5GQR8ff3F5ErV66MHj36+eefL3yDqre395AhQ1avXv3w4UM7hGuxhw8fnjhxQkS8vb2bNWtWcuH9+/eLSL169SpVqmTSXrZt27Z27VoPD48pU6aYG2kptmzZcujQoUOHDll4y7OpHcD2imvpO++8U7ly5ePHj8+bN89OocH5kAH0Of6fvzhzBrBNZxPr9zeGG3GG/gZHQwYwQAYAAAAAAJTKNSfhJk2atG7dOhEZMWKE8ui448ePDxw4UETWrl07Y8aMwpvExMTcv3//+++/t3Wsajh8+LByE2vTpk19fHxKKJmSknLlyhUx/a5kjUYzevRoERk8eHDdunUtCLZYWq02MTFRed2qVStLqjKjA9hSCS318/MbO3asiHz00Ue3b9+2Q3BwQmQAfQ7+5y9OngFs0NnE+v2N4Ubh+P0NjoYMYIAMAAAAAAAolQtOwp0/f3727NkiMnToUOUxEm5ubk2aNImPj+/fv7+ITJo06dKlSwZbNW3atHnz5qU+38IxKfcaixFLAxlf0sC2bduSkpJE5PXXXzc9QKMUFBQkJCTs3r177969ltyYbF4HsKWSW/rKK694enpmZmY6aW+E7ZEBdBz/z1+cPAPYoLOJ9fsbw42Og/c3OBoygD4yAAAAAADAGC44Cbd06dL8/HxfX9+ZM2fqv+/u7j5nzhwPD4/8/PxVq1YV3jAmJmb37t12vz5rBuOvdBj/JA8DS5YsEZGaNWs++eSTpgdoFE9Pz8jIyMjIyA4dOlhSj9kdwGZKbmloaGhUVJSIfPHFF1qt1ubRwfmQAXQc/89fnDwD2KCzifX7G8ONjoP3NzgaMoA+MgAAAAAAwBguOAn3zTffiEhkZGTVqlUNPqpdu3ZkZKSIfPXVV4U3fPHFF729vVesWGH9GFVm6jURb2/v5s2bG19/Zmbmjh07RKRHjx5ubm7mhmkjZncAx9GzZ08RuXjx4rFjx+wdC5wAGUDHBf78xbEzgLU7m9DfbM6R+xscDRlAHxkAAAAAAGAMV5uEu3jxovJo9KZNmxZZQHn//Pnzd+7cMfioYsWKffv2XbFihSM8R914N27cuHr1qohUrFixfv36JZTUarUHDx4UI57kYWD37t25ubli8ZMzbMCSDuA4IiIilBfbt2+3byRwfGQAHdf48xcHzgA26GxCf7M5h+1vcDRkAH1kAAAAAACAkVxtEu7IkSPKi+JOiRs0aKC8OHr0aOFPo6Ojr1y58vPPP1snOqvQLfjTunXrkkueO3fu7t27YvrSQD/++KPywsEviIjFHcBBNG3a1MvLS/SOPEREo9E41wS5bZABdFzjz18cOAPYoLMJ/c3mHLa/2RHDTZHIAPrIAAAsx3ADALABhhvAEXjqXl2/fn3evHki0qhRo+jo6CJLb926ddeuXSIyatSounXrWr77JUuWXLhwQUTGjx8fEhJieYVpaWnKi/Dw8CIL6N4v8tlvUVFR1atXj4uL69q1q+XB2IZuaaBSr4mY/XwOZYEaHx+fxo0bG1M+Ozv73//+t4hEREQ8//zzDx482LBhwx9//JGUlJSamtqyZcuJEydWq1ZNf5OMjIzJkyeLSLt27ZSn2ZvHwg5gEjOaKca11MfH57HHHktMTGRpIBG5efPm3LlzExISLly4oNVq69at27t373HjxhU+tmUTGUDHln/+UiYzgA06m5jY38rIcCPWbKnD9jfbY7gpGRlAHxkAgNkYbgAANsBwAziU/5uE8/PzmzVrlog0b968yEm4e/fuvfzyy7dv346IiPj0009V2f3q1at3794tIiNHjlRlEk658VZE/Pz8iiwQEBCgvHjw4EHhT93d3YcNGzZnzpy7d+9WqFDB8nhswPjncxhf0sCZM2dE5PHHH1dulS3VkSNHlL40fvz4I0eOzJs3LysrS/fp4cOHf/vtt3379gUFBenePHTokLLJwoULTYrNgIUdwCRmNFOMbmlERERiYuLt27dTU1NV+dNwUmvWrImJicnMzNS9c/78+Tlz5ixevPiLL74YOnSoHWNzEGQAHVv++UuZzAA26GxiYn8rI8ONWLmljtnfbIzhplRkAH1kAADmYbgBANgAww3gaP5vEq5ixYqhoaG3b98+f/58kUUnT558+/ZtNze3zz77zGGflK47Jfb29i6ygO6UvrhT4ujo6OnTp8fHx48cOdIKAapMo9EcOnRIeW3kjcmlPsnDwL17927cuCEitWrVMnIT3R3Qn376qYeHR6dOnVq3bp2WlrZx48Zr166JyMmTJydPnqxcGlAYf3t1ySzvAMYzo5lidEtr1KihvDhz5syTTz5pYahOas2aNS+88IJWqy38UVZW1rBhw7Ra7bBhw2wfmOMgA+iz5Z+/lL0MYIPOJqb3tzIy3IiVW+qA/c3GGG5KRQYwQAYAYAaGGwCADTDcAA7ob8+Ea9iwoYhkZGTcvHnToNzZs2cXLFggIkOGDHniiSfU2v3EiRPj4+Pj4+OrVKmiSoXp6enKi1JPiTMyMoosEB4e3qFDh9jYWFXisbbTp0/fv39fROrVq1epUqUSSubk5CgPpTD1ooPy2HkRKVeunJGb6D815NSpUz/88MPUqVMXLlx47Ngx3bn9mjVr9McDZRMfH5/iHq1hJMs7gPHMaKYY3dLy5csrL65fv25hnE4qJSXllVdeKfJLg87IkSPL7PFRkAH02fLPX8peBrBBZxPT+1sZGW7Eyi11wP5mSww3xiADGCADADAVww0AwAYYbgDHVMQknIicO3fOoNzYsWPz8vICAgJmzJihezMjI6OgoMCS3Xfq1GnQoEGDBg0KDAy0pB6d3Nxc5UVxz5zUvZ+fn19cJTExMQcPHjxx4oQqIVmV8Qv+HDlyRDk4hUvm5OSUcIFA95Gpl+DDwsJ2796t/6iM4ODgxYsXu7u7i8jVq1f153qVTZo3b27kenfFUaUDGMmMZorRLdVdEFHlBmpnNG/evFKvW2VlZc2ZM8c28TgmMoA+W/75S9nLADbobGJ6fysjw41YuaUO2N9sieHGGGQAA2QAAKZiuAEA2ADDDeCYip6EM1iRcuvWrdu2bRORDz74oFq1agUFBXPnzq1bt265cuWCgoLatWv39ddf2yzikukm83TnxgZ07+tOOAsbOHBgYGBgXFyc6uGpzvhrIrpbaPVLxsXFNWvWzN/fPygoqFatWp988kl2drbBhroT8hKOmL709HSl/7Rp08bHx8fg08cee0x37UB3pSA5OVlZS8fCpYFEpQ5gDDOaKaa0lAsimzZtMqbYxo0brR2JIyMD6LPZn7+UyQxgg84mJva3MjLciPVb6oD9zZYYboxBBjBABgBgKoYbAIANMNwAjslT/x9FTsLl5eWNGzdORGrXrv3uu++KyMsvv/z1118/99xzw4YNO3PmzMaNG1966aVdu3YtX77chpEXTfdAcktOiQMCAgYOHPjNN9/MmjXL7KffabXaLVu26D81vVQXLlyQ4u+oLVKRVzqKZPBkCI1G8+KLL65evToqKiomJiYgIOC777778MMPd+/evW3bNuWOWoWpdyUfPHhQf0eF1atXT/mppe4/y/hWlEqVDmAMM5opprTU1Asiubm5586dW7t2rTGFTZWTk3PkyBErVV6cwr/HLdLFixdXr16t32Ot6q+//hKR3bt3p6WlqV756dOnRaTkRQMMkAH02ezPXxwvA+Tn558+fdqkP9Lc3FyTRigbdDYxsb+VkeFGrN9Sk/pbZmbm/fv3rTQiXLhwIS0tjeFGkZmZeezYMSsdjYKCgiKnwYpDBjBQljOA7f9IXVhmZmZycrKpT0+E5ZRMtX79ej8/P5vt1GGHm3Pnzt2+fZu/a9u7f//+7du369WrZ+9A4Pq0Wu3x48cfe+wxs69wwjx37twRkV9//dWk6zwWctjhZt++fSKyceNGy78ewyQajebEiRNkABWdOHGiQYMGJq2t4uHh8bdJuAYNGigv9CfhFi1adPbsWRGZPXu2r6/v999//9VXX3377bcvvPCCUuDUqVPdu3f/8ssve/To8dxzz1naDsvoTj6LO41UnvcupZ0S5+bmenl5WdI7r1692q9fPzOW61RuXDVGVlaWsmaml5dXs2bNSi6snGmEh4eHhISIyPz587/77ruVK1cOHTpUKfDKK69ERUXt2LHj22+/HTJkiG5DUw+C7rQ/IiKiyAKZmZnKi7CwMINNLL8xWa0OUCozmimmtFQ3Qht5/NPT07ds2bJlyxZjCpshISEhISHBSpVbQqPR6HKRzXz88cfWqzwlJcXIkmQAAzb78xfHywAZGRnr1q1bt26dMYV1Tp48aWRJ23Q2MbG/lZHhRqzfUpP625kzZ65du/b888+XWtJsVq3cbHYZbrZv3759+3YrVU4GsESZzQDnzp27cOGCY/6RAqYaPny4vUMogl2GG3HUwRcAXMBnn3322Wef2TsKQ/Yabl599VXb7xRwBH+bhKtdu7aPj09OTs7FixeVd+7duzd16lQR6dix47PPPisi8+fPf/rpp/X/UBs1ajR79uxBgwZ9/PHHdp+E0z0r/sKFC+3bty9cQPm1mYhUqFChuEru3bu3bt065fd/ZqtZs+bdu3fz8vKM3+TPP//s0qVLzZo1jSx/+fJl5TkTYWFhhVen0Xfs2LGkpCQRefrpp5V3nnnmmVu3bukuiOje/PHHH3/77Tf9ayK69Xbu3btnTFTKab+bm1urVq0Kf6rRaJSf+zRp0kRXs7JJcHCw/lMuzKNKBzCGGc0UU1p6//595YWRj0usXLly7969p02bZlz4pqlVq9Ybb7zxr3/9yxqVF6d9+/anTp0qtVh4eLjuSpMNnDhx4qmnnlq/fn1kZKTqlf/++++9evXSn7MpGRnAgM3+/MXxMkD58uWjo6MnTJhgXPgiIuHh4UUGXyTbdDYxsb+VkeFGrN9Sk/pbixYtHj58qNzGqLqXX345OTl5x44d1qi8OI453IhIgwYNBg8e/NFHH1mj8qpVq7Zs2dLIwmSAwspsBmjWrJmfn99PP/1kdPgoRU5OTsl/VrCGlStXjhkz5sqVK2o9md4YDjvcjBo16uTJk3v37rXlTqEgA8BmcnNzvb297R1FmXPt2rXHH398xYoVffr0sdlOHXa4WbNmzciRI8+ePRsaGmrL/ULIAGoz43ga/hLOw8Ojfv36J06c0P0UY+bMmampqR4eHrpJ+7p163br1s2gol69erm7u588eTIvL8/C55xb6PHHH1deFPfzW90pcePGjYurJD4+Pisr6+WXX7YwGFO/0xu52pvOrVu3lBe6CwHFWbVqlfJCd4NbeHh44Qmb1NRUKRS2eZfg69evHxwcXPjTvXv33r59W0SioqKUd7RarbLMjuV3JYtKHcAYpjZTTGyp7mjrr2VXAjc3N19f3yKDsZxVKy/Oc889Z8z3hgEDBtgyMOWPNCgoyBo7NfL/WocMYMBmf/7iEhnApF+c2KaziVmX4F1+uBHrt9Sk/ubm5ubh4WGlxOvj4+Pl5cVwo/Dw8LDqyG58YTJAYWU5A3h6etr4bwFQnb+/v4hUqFDB1K/flnDY4cbHx4e/awCwBmXJhICAAFvmWIcdbgICAkSkQoUKjDgomwzXflUeC3fr1i2NRnP9+vV58+aJyGuvvaY71Vy4cGGvXr0MtvLz8wsICMjLy0tPT7d6yCVq0qSJr6+viBw+fLjIAsePHxeR4ODgEhbfj42NjYyMtPwmWWvTrW/z8OHDEoqlp6cr10SeeuqpDh06FFcsNzf366+/FpF+/frpv687M9HdJ1uCK1euKDO4RS6YU1BQMHbsWBFxc3N77bXXlDfPnDmj1Gz58zlEpQ5QKjOaKSa2VHe0bXlm6FBGjx5d6gpOQUFByqEum8gABmzz5y9lMgPYprOJKf2tjAw3YpOWOlp/szGGm1KRAQojAwAwFcMNAMAGGG4Ax1T0JFxBQcGdO3c+/vjjrKys4OBgZUVKhZ+fX+EztLNnzz548KBixYqVK1e2dsQl8/Hx6d27t4js2bNHuS1U37Vr15SbSfv161fcLcAnT548cOBATEyMtUO13COPPKKsXXDp0qUSHqUeExOTkpLi7e39+eefF1cmJSXlueeeu3jx4ksvvdSuXTv9j6pVq6a8MP6uZCnm3tu5c+ceOXJERAYMGKB7AKGKz+cQNTqAMcxoZqlbGdAdbd3xL2sqVaq0atWqEh4S6+7u/t///tfuOceOyAAGbPPnL2UyA9ims4kp/a2MDDdik5Y6Wn+zMYabUpEBCiMDADAVww0AwAYYbgDHVPQknIgcP358xYoVIjJ58mTlyeol2Lp1q4iMGDFC/QBNN2zYMBHJzs6eOXOmwUdTp05Vnj0eHR1d3OaxsbFBQUEDBgywapCq8PPz69Gjh4jk5ubOnz+/yDJTpkzZsGGDiMyePbtp06aFCwwaNKhx48Y1a9bcvHnziBEjli1bZlAgKChIOSe/fPlyqSHpTvsNCmu12pkzZ44fP15EgoOD9R9Jun//fuVFcU+bF5GHDx8uXrx448aNpQYg5nYAk3ZhRjPFuJbq6GrW/UmWQb179964cWPFihULfxQcHLxhw4b+/fvbPirHQQYozAZ//lImM4BtOpuY0t/s3tnEgfubSZ1NHK+/2R7DTcnIAEUiAwAwFcMNAMAGGG4AR6T9u0OHDinvR0ZGikijRo3y8vK0Jbp27VpwcHC9evXS09NLLlnYwIEDq1evXr169UuXLpm6ba9evTp27FjkR8qVAjc3t6VLl+reXLBggXIjQN++fYurMzc3NzQ09NVXXzU1GFUoz2/Ys2eP8ZskJiYqD+Hz8PDYsGGD/kfXr1/XPRxiypQpxdXQu3fvli1bVqxY0c3NbciQIRcvXixcpkuXLiLi7e2dnZ1dcjxKtxERT0/P5cuX5+XlFRQUHDhwQLlZWKlk+/bt+pu0bNlSROrUqVNCtW+88Yay+fz580sOQGFGBzBpF2Y008iW6rRo0UJEQkNDjSms1Wpr1KgxduxYIwubqly5cpMmTbJS5aVKT0+fPn16q1atRCQwMLBNmzZTp05NS0uzSzDK/eY7d+60RuV79uwRkYMHDxq/CRmgMGv/+ZvXTCNbqmNqBggJCZkwYYKRhc3bxDadTWt0f3OEzqZ11P5mUmfTmtjfRowY0ahRIyNrNtXAgQOfeOIJK1VeKmW4adu2raenp4+Pj32HG61WGxYW9v7771upcl9f32nTphlfngxQpDKYAQYPHhwREWFkzYDDWrp0qYjcv3/fLnvXDTf+/v5ubm52H26GDRvWrFkze+0dAFyYcqvT2rVr7bJ33XBToUIFEWnSpIl9hxtl4fqUlBR7BQDYl+EknMEiMz/88EPJ29+7d69p06aVK1c+c+aMGbvv2LGjsqOkpCRTty1hEu7atWtVq1ZVam7RosWAAQN0z2OoXbv2jRs3iqtz3bp1IrJv3z5Tg1GFGZNwWq12yZIluoVu2rdvP2HChIkTJ/bv39/Pz09EAgICvvrqq1Ir0Wg0e/bsqVSpUmho6NGjRw0+HTdunFL/gQMHSqikoKAgMDBQRBo2bFijRg0R8fLy8vb21nWnChUqbN68WX+TrKws5ZrOoEGDSqi5U6dOSg1GXvgzowMYvwszmml8SxU5OTlKhV27djWmvVqXnoRTKM+b/PLLL+0bhqNNwmnJAIVY9c/fvGYa31KFGRnABpNwWpt0Nq1x/c1BOpvWIfubSZ1Na3p/c+FJOJ3WrVu/8MIL9o7CsSbhtGSAopTBDMAkHFyDfSfhdP7nf/6nYsWK9o1ByyQcAFiNfSfhdPbu3Vvyt2vbYBIOZZzhcpSBgYHVq1dXXvfp00d3Z2uR7t+///TTT9+9e/fXX3/Vf/KN3VWrVi0xMbFz584ikpiY+N13350/f15Eunfvvn///rCwsOI2jI2NbdiwYdu2bW0Xq8Vef/31hISEOnXqiMivv/46bdq0KVOmrF+/XqPRjBgx4syZM0OGDCm1Ejc3t6eeemrZsmW3b9+Ojo7WarX6n3br1k15oUwTFufUqVMZGRki0qtXr4MHD/bp06egoCA3N1dEvL29hw4devTo0WeeeUZ/kyNHjuTl5UlpT614//33K1euHB4eXlBQYBBbkczoAMbvwoxmGt9SxbFjx5QKS/4DBIQMUIhV//zNa6bxLVU4bAawQWcT4/qbg3Q2ccj+ZlJnEwfub3A0ZIDCyAAAAAAAgFJ5Fn7r6tWrxmx5//797t2737lzZ+/evTVr1jRv97t27TJvw1KFhYX99NNPf/75544dO27fvl29evXOnTs//vjjJWxy48aNbdu2zZgxw0ohWU/v3r179OixZ8+e/fv3p6amhoSENGjQoHv37srNsybV4+/vn5iYePz4cf1jFRkZ6evrm52dXfIleN1TKyIiIqpUqZKQkHDr1q2zZ896e3s3bNiwfPnyhTdp27atMdc4nn766ZSUFBHp1auXRqPx8PAodRNTO4DxuzCjmWJ0SxW6VWG7d+9u5CYoy8gABqz3529eM8WFMoC1O5sY198cp7OJ4/U3kzqbOHZ/g6MhAxRGBgAAAAAAlKyISThj3Lt3r3v37hkZGb/88ksJPyyzu+bNmzdv3tzIwitXrnRzcxs6dKhVQ7IST0/PLl26KA/SMJuHh0elSpWuXLly9epV/csHfn5+PXr0WL9+/aZNm7Kzs319fYvcXP9KgfKicuXKlStXtiSkIoM0vrBJHcDIXdigmZs2bRKRevXqlTxtDOiQAQqzxp+/kAGs3NnEuP7maJ1N6G8oM8gARSIDAAAAAACKY7gcpTHu3bsXFRWVm5u7e/duR56BM1VsbOwzzzxTpUoVewdiC7r7XvXl5ORcv35dRJo0aWLw0ahRo0QkNTV19erVxdWpXCkICQlRlipSXWZmpr+/vzVqNmkX1m7mnTt3duzYISIjR460Rv2AkAEsqJ8MYCpTO5sY0d+cvbMZvwv6G5wdGcCSXZABAAAAAMAFmDwJd/fu3W7durm5uf3888+VKlWyRkx28dtvv507dy4mJsbegdjIgAED4uPjDd5ctmxZQUFBkyZNatWqZfBR165dGzVqJCKLFi0qssKsrKzjx4+L3r26qvvqq6/69u1rpcqN3IUNmrl8+fL8/PzAwMCXX37ZSrsAyADm1U8GMIOpnU1K628u0NmM3AX9DS6ADGD2LsgAAAAAAOAaTJ6Ei4mJOXjwoK+v79ChQ3v16tXj727cuGGNKG0gNja2SpUqPXv2tHcgNjJ58uQXX3xxwIABP/3004MHD1JTUxcvXvzee+95enquWLGicHk3N7cFCxaIyIEDB4q8qfnPP//Mz88Xq10pePjw4erVqwcNGmSNyo3fhbWbmZWVNXfuXBGZOnWqK01yw9GQAcyrnwxgBlM7m5TW35y9sxm/C/obXAAZwOxdkAEAAAAAwDWY/Ey427dvi8iePXuK/PThw4eWRmQPGRkZa9asGTVqlKenmQ/JczrDhw8PDg5+5513unbtqnuzTp06K1asaNmyZZGbdOrUadiwYStXrpw2bdr69esNPi381Ap1vfPOO9b+DzJmF9Zu5ty5c2/dutWsWbO3337bGvUDCjKAefWTAcxgRmeTEvubs3c243dBf4MLIAOYvQsyAAAAAAC4BpPPMH/55RdrxGFfa9euzcjIiI6OtncgNtWnT5+nn356z549hw4d8vT0bNmyZdu2bUt+QMWsWbM2bdq0YcOG9evX9+/fX/8jq14pOHr0aJUqVQYOHKh6zabuwqrNPHfu3NSpU93d3b/44gsPDw/V6wf0kQHMqJ8MYB4zOpsU39+curOZtAv6G1wDGcC8XZABAAAAAMA1lJUffpUsLi7uiSeeePTRR+0diK15e3t369atW7duRpYPDQ2Nj4/v1avXqFGjWrVqVaNGDd1HX3755bJly0QkICBA9TibNm3atGlT1as1YxfWa2ZWVtZLL72UnZ09Z86c1q1bq1s5UCQygKn1kwHMZmpnk+L7m1N3NpN2QX+DyyADmLELMgAAAAAAuAaTnwnnOOrUqVOnTh1VqkpOTh49erQqVbm8qKio5cuXp6Sk9O7dOyMjQ/e+n59fQECANS6IOBQrNVOr1Q4fPvzgwYPvvvvu2LFj1a0cUBEZgAxgS0X2tzLS2YT+hjKPDEAGAAAAAAAX4MS/hPv888/VqiopKUmtqsqCYcOGKQ+T9/LysncsLsLNzW3VqlWrVq3y8fGxdyxAKcgAqiMDlID+pjr6G5wIGUB1ZAAAAAAAsDEnnoSDHXHerjoOKZwI3VV1HNIScHBUxyGFE6G7qo5DCgAAAAC25MTLUQIAAAAAAAAAAACOiUk4AAAAAAAAAAAAQGVMwgEAAAAAAAAAAAAqYxIOAAAAAAAAAAAAUBmTcAAAAAAAAAAAAIDKmIQDAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyT3sHAEPJyckXL160dxRwMvn5+Vqt1t5RQAXXr1+vWLGivaOAk9FoNKZuotVq7969y3ADUz148IDhxjWkpaWRAWCqjIwMM0YcAAAAACjLmIRzIHfu3BGRwYMH2zsQOKU///zT3iHAIjdu3BCRfv362TsQOKXExESTyt+/f3/hwoULFy60UjxwYYGBgfYOAZbKzc2dPXv27Nmz7R0InE9wcLC9QwAAAAAAZ8IknAOJior65JNP6tat6+bmZu9Y4GQuX77cq1cve0cBizz33HPTpk0LDw8nA8BUly5deu6550zaZMWKFbm5ucymwFR3794NDQ21dxSw1PLly93d3f39/e0dCJxMampqzZo17R0FAAAAADgTJuEciLu7+/jx4+0dBQD78PT0/PDDD+0dBcqKIUOG2DsEAHYTHR1t7xAAAAAAACgT3O0dAAAAAAAAAAAAAOBqmIQDAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyJuEAAAAAAAAAAAAAlTEJBwAAAAAAAAAAAKiMSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDIm4QAAAAAAAAAAAACVMQkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypiEAwAAAAAAAAAAAFTGJBwAAAAAAAAAAACgMibhAAAAAAAAAAAAAJUxCQcAAAAAAAAAAACojEk4AAAAAAAAAAAAQGVMwgEAAAAAAAAAAAAqYxIOAAAAAAAAAAAAUBmTcAAAAAAAAAAAAIDKmIQDAAAAAAAAAAAAVMYkHAAAAAAAAAAAAKAyJuEAAAAAAAAAAAAAlTEJBwAAAAAAAAAAAKiMSTgAAAAAAAAAAABAZUzCAQAAAAAAAAAAACpjEg4AAAAAAAAAAABQGZNwAAAAAAAAAAAAgMqYhAMAAAAAAAAAAABUxiQcAAAAAAAAAAAAoDIm4QAAAAAAAAAAAACVMQkHAAAAAAAAAAAAqIxJOAAAAAAAAAAAAEBlTMIBAAAAAAAAAAAAKmMSDgAAAAAAAAAAAFAZk3AAAAAAAAAAAACAypx4Ei4/Pz83N1eVqnJyclSpBwAAAAAAAAAAABCnnoQbNWrU8OHDVamqdu3aixYtUqUqAAAAAAAAAAAAwIkn4W7evHnz5k1VqmrRosX8+fNVqQoAAAAAAAAAAABw4kk4YxQUFCQlJf38888nT57UaDTFFYuOjj5z5swff/xhy9gAAAAAAAAAAADgqjztHYC1aDSazz///D//+U9ycrLyTs2aNf/5z3++/fbbhQv36dMnJCQkNja2bdu2tg0TQClu3rx5/vz5c+fOiciuXbuqVatWu3btBg0a2DsuAIBLefjw4bFjx27evHn58uWMjIxNmzb94x//ePzxx728vOwdGgDAdWg0mhMnTly9evX333/PzMz87rvvqlat2rhx4woVKtg7NACAS/nrr78uXLiwc+dOEdmyZUtGRka9evVq1qxp77iAssg1J+FycnJefPHFdevWKf/09/d/+PDhlStXRo8e/csvv8THx7u7/+0ngN7e3kOGDFmxYsW8efP8/f3tETKAv7lz586XX36ZkJCwf/9+3c9Yv/rqq6+++kpE6tSp07dv3+HDhzdr1syeUQIAnFxeXl58fPz333+/Y8eOrKws5c2UlJQ+ffqISIUKFXr27Dlo0KDevXu7ubnZNVIAgHPbs2fP119/vXHjxpSUFN2bAwcOFBEvL6/IyMj+/fsPHz48ICDAfjECAJzehQsXYmNjExISTp48qXtz8uTJyoumTZv27ds3JiamVq1adgoQKItccznKSZMmKTNwI0aMuHnzZkZGxvHjx5Vvt2vXrp0xY0bhTWJiYu7fv//999/bOlYAf/fw4cPp06eHh4dPnDgxMDBw/vz5hw8fPnDggIgMGTLkxIkT3333XYcOHVatWtWyZcshQ4ZcunTJ3iEDAJyPVqv97rvvGjduPGzYsMuXL7///vt79+69dOlSQEBAjRo1zp8/v3PnzhEjRhw4cKBv375t27bdvXu3vUMGADilI0eOPP300x07dty6deuzzz67devW06dPP/HEE25ublevXt23b9/HH3/88OHDt99+u379+kuXLs3Pz7d3yAAA53Pr1q233367UaNGn3/++aOPPrpy5cpjx4598sknIvL5558fPXo0Li6uTp06s2bNatCgwT//+c+0tDR7hwyUFS44CXf+/PnZs2eLyNChQ5ctW1alShU3N7cmTZrEx8f3799fRCZNmlT4qn3Tpk2bN28eFxdnh4gB/K8LFy5ERET8+9//joqKOnv27I4dO954440WLVpUrlxZRLy9vRs3bvzcc8/997//vXHjxuLFi3fu3NmoUaOvv/7a3oEDAJxJdnb2sGHDBg4cGBISsnfv3j///POjjz7q0KFD7dq1RcTNzS08PLxLly7/+c9/zp8//+OPP+bk5HTq1On111/nwigAwCRLly6NiIg4efLkF198cfny5UWLFvXo0aNhw4YeHh4iUr169bZt277//vu//fbbqVOn2rdvP3LkyI4dO966dcvegQMAnMnvv//++OOPx8bGjh079tq1a2vXrh06dOhjjz0WFBQkIuXKlXv88cdffvnl9evXX7t2bcyYMYsWLWrSpMn+/fvtHThQJrjgJJxy45ivr+/MmTP133d3d58zZ46Hh0d+fv6qVasKbxgTE7N7925+VQPYy969e9u0aZORkXHw4ME1a9YoV0KL4+Xl9dprr505c6Zz585Dhw6dOnWqrcIEADi3mzdvtm/ffu3atbGxsfv27evQoUPJ5bt27Xr48OHJkycvW7asT58+mZmZtokTAODUCgoKXn311ddffz0mJub8+fOvvfaaMvFWnAYNGqxZs2bz5s0nT55s27bt6dOnbRYqAMCprVy5slOnTjVr1jxz5syMGTPKly9fQuHg4OAZM2acOHGicuXKHTt2XL16tc3iBMosF5yE++abb0QkMjKyatWqBh/Vrl07MjJSRJTHShl48cUXvb29V6xYYf0YARg6ffp0nz59wsPDDxw40KJFCyO3Cg4O3rhx45gxYyZOnLh48WKrRggAcAFZWVl9+vS5fPnyzz//HB0dbeRWHh4eEydOXLt27a5du4YNG6bVaq0aJADABfzrX//68ssvP/vssy+++MLX19fIrXr27PnHH3+4u7v37Nnz9u3bVo0QAOACtm3bFhMT069fvz179tSoUcPIrerWrfvrr79GRUUNHTp0165dVo0QgKtNwl28eDE5OVlEmjZtWmQB5f3z58/fuXPH4KOKFSv27dt3xYoVGo3G2nEC0JeWltanT59KlSpt2bKlSpUqJm3r4eExZ86c4cOHv/POOzywBwBQspiYmKNHj65fv75du3ambvvcc88tX7583bp1H330kRVCAwC4jhUrVsyePXvKlCmjR482ddsGDRps3br13r17zz33XF5enjXCAwC4htOnTw8ePDgyMvKrr77y8/MzadvAwMA1a9a0atVq4MCBFy9etFKEAMT1JuGOHDmi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ZMqUKRERESJy7ty5Hj16lC9fvmLFij169Ni9e7e3t/dHH3309ddf69afrFChgkajKbySj7JkZYUKFUza/e3bt69du3bt2rWCggLLG6OzbNmyqlWrarXa1157rWXLlgMHDnzkkUfeeustjUZTu3btJUuWFLfh5s2bb9++zVqUgC0FBgZOnDhx/fr13377rdmVXL58+f3333/66ae7du2qYmwAAFfyySefpKenv/POO2bXkJeXFx0dHRgYOH78eBUDAwC4khEjRjRs2PC11167d++e2ZV8/PHHf/7556xZs3j+KACgSI888siIESM+/fTTgwcPml3JL7/8Mn/+/LfffrtWrVoqxgZAn7uIBAYG/v777x999FHFihV1H5QrV+7ll18+fvz4pEmT9B+fpkyzXb161aCia9euiUj58uVtEHSpqlWrlpiY2LlzZxFJTEz87rvvzp8/LyLdu3ffv39/WFhYcRvGxsY2bNiwbdu2tosVgMjrr7/et2/fV155xbzvDZmZmX379vXy8lJlkTEAgKtq2LDh3Llz4+Li5syZY14NY8aM+eWXX1atWhUcHKxubAAAl+Hp6fntt99euXJl8ODB5t1wvH79+o8++uif//wntxgCAErw6aef1q9fv1+/fsnJyWZsfvny5QEDBjRt2nTy5MmqxwZA5//fUeXp6Tlp0qTU1NS//vrrp59+OnHixK1bt+Li4h555BGDDZR3lDktfSdOnPD19a1Tp45Ju9+1a5dWq9Vqtao/wyksLOynn35KTEycMWPGu+++O3fu3KNHj27fvr1y5crFbXLjxo1t27a98sor6kYCoFTu7u6rVq2qX79+165dN2/ebNK2ycnJXbp0OXv27Lp16/7xj39YKUIAgGt48803R44c+c9//nP8+PHKo4KNlJ+fP3r06EWLFn366afKyucAABSnWbNmq1at+uGHH3r16mXq7+G++eabIUOGREVFzZgxw0rhAQBcQ2Bg4MaNG/Pz8zt06HDy5EmTtj127FjHjh09PDzWrVtn6hOmAJjEcFmDWrVqde7cuXHjxj4+PkVu0LdvXxH5448/9N88f/78rVu3OnfuHBAQYKVAzdO8efN//etfs2bNGjNmzOOPP15y4ZUrV7q5uQ0dOtQ2sQHQFxgYuHPnzqZNm/bv3/+TTz5RVrgt1fbt2yMiIi5duvTjjz+2adPG2kECAFzAggULxowZM3PmzEGDBt28edOYTc6dO9e5c+fFixfPnTt33Lhx1o4QAOAC+vfvHx8fv3fv3nbt2h06dMiYTe7du/f2228PGTKkT58+69at0z0WBACA4tSqVWv37t3u7u7t2rX76quvjLnRUKPRLF++vF27dv7+/nv37q1evboN4gTKMpPXFu/Ro4ePj09cXFxWVpbuzc8//1xE+vTpo2ZoNhcbG/vMM89UqVLF3oEAZVRoaOjOnTtfffXVCRMmNGzY8L///W9mZmaRJTUazS+//NKtW7cePXpUq1btwIED7du3t3G0AAAn5eHhMWfOnNjY2G3btoWHh0+aNKmExVuSkpLefPPNJk2anDt3bsuWLWPGjLFhpAAA5zZw4MBff/01JyendevWgwcPPnLkSHEl09LS5s2bFx4evnTp0mnTpn377bf+/v42jBQA4MQeffTR/fv3P/nkk0OHDo2IiNiyZUteXl6RJXNzcxMSEpo3b/7qq69GRUXt27cvPDzcxtECZZCnqRsEBQW9//77U6dOff755z/77LOqVasuXrx44cKFDRo0GD58uDVCtI3ffvvt3Llz//nPf+wdCFCmeXt7L1q0aMSIEf/6179efvnlkSNHdu3atU2bNsrv4pOSkubMmXPy5MktW7akpKTUrl37q6++Gjx4MM8qBwCYKjo6umfPnlOmTPnkk0+mTp0aERHRtWvX6tWr5+fnZ2Zmzp8///Lly9u3bz958mRAQMAHH3zwz3/+MygoyN5RAwCcTPPmzU+dOrV48eKPP/44Pj6+Tp06PXv2rF+//q1bt0Rk+fLl165d27t37y+//FJQUDBo0KBp06bVrVvX3lEDAJxMxYoVt27dum3btvHjx/fq1atChQo9evRo1qyZskbl77//fuPGjT///HP79u33799v2bLlzp07u3TpYu+ogbLC5Ek4EZk0aVJaWtqiRYt0j2567LHHEhISfH19VY3NpmJjY6tUqdKzZ097BwJAWrRo8eOPPx47diwhIWHjxo3Tp09Xfnr7yy+/7Nu3r0aNGs8++2y/fv06duzo7e1t72ABAM6qSpUqCxcu/J//+Z+EhIQNGzYsXrw4PT1dRHJyckaPHl25cuWnnnpq/PjxzzzzTHBwsL2DBQA4K29v73feeefVV1/dvn37hg0bNmzYcOPGDY1GIyKvvvpqYGBgy5YtZ86c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\n",
      "text/plain": [
       "<PIL.Image.Image image mode=RGB size=2348x409 at 0x117ADAE48>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "oracle.circuit.draw(output='latex')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As seen, the $v_i$'s correspond to the 3 input bits; the $o_0$ is the oracle's output qubit; the $a_0$ is an ancilla qubit.\n",
    "\n",
    "Let us first compute the groundtruth $\\mathbf{a}$ classically:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The groundtruth result bitstring is 110.\n"
     ]
    }
   ],
   "source": [
    "a_bitstr = \"\"\n",
    "num_bits = math.log2(len(bitstr))\n",
    "for i in reversed(range(3)):\n",
    "    bit = bitstr[2 ** i]\n",
    "    a_bitstr += bit\n",
    "print(f'The groundtruth result bitstring is {a_bitstr}.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we can create a `BernsteinVazirani` instance using the oracle, and run it to check the result against the groundtruth."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The result bitstring computed using Bernstein-Vazirani is 110.\n"
     ]
    }
   ],
   "source": [
    "bv = BernsteinVazirani(oracle)\n",
    "backend = BasicAer.get_backend('qasm_simulator')\n",
    "result = bv.run(QuantumInstance(backend, shots=1024))\n",
    "print('The result bitstring computed using Bernstein-Vazirani is {}.'.format(result['result']))\n",
    "assert(result['result'] == a_bitstr)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
